home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Shareware Overload Trio 2
/
Shareware Overload Trio Volume 2 (Chestnut CD-ROM).ISO
/
dir42
/
c7105.zip
/
3007105.DOC
next >
Wrap
Text File
|
1994-03-02
|
6KB
|
132 lines
Template Release 3007.105 Installation Notes
NOTE: All of the fixes in any Template Release have not been fully tested by
Q&A. I have a high level of confidence in the fixes made in any
Template Release, but time-constraints dictate that Q&A cannot devote
someone full-time to testing fixes made as fast as I'm making them
For instance, a change made to Browse.CLA needs to be tested in
literally hundreds of situations. While a fix may work in every case I
try, I cannot fully test my own work, just as a writer cannot
proof-read his or her own manuscript. You may find some bugs. The
changes made in any Template Release will be included in the first CDD
Patch after they've been fully tested.
NOTE: The file TPXFIXES.DOC contains a listing of all fixes since 3007.100.
NOTE: Clarion.TXT has not been updated with all of these changes. That
update will be coming 'round soon.
The following file has been modified in this release:
Fixes from 3007.104 to 3007.105
All Templates with PullDowns - Added pulldown handling code consisting of a
byte flag, declared as SAV::PullDownOpened. On the line after every
OPEN(%PullDown) in each procedure, this flag is set to true, and after every
CLOSE(%PullDown) the flag is set to false. IF you manipulate the PullDown in
your EMBED code, you need to manipulate this flag for the procedure to know
what to do!
Form and MultiPg - Rewrote the AutoIncrement code. AutoIncrement now works
with any key structure that I can think up to AutoIncrement. The following
rules have changed since 3007.105:
1. Higher level key elements are no longer cleared to high values.
The clearing to high levels actually accomplished little, since you
needed to use a PRIMEKEY formula to set up multiple key elements.
2. AutoNumber ROUTINE now calls two ROUTINES, SaveAutonumber and
NextAutoNumber. This separation was made so that AutoNumber would
work with recurring add procedures (Clear or Retain Record).
3. AutoNumbering keys now have a variable declared to store the value
of each key element. These variables are named Auto:%KeyField,
where %KeyField is the labal of the key element being stored.
If keys exist for %Primary which prohibit duplicates, no NOT exclude
nulls, and are not AutoNumbering, additional variables for the
Autonumbering key fields are created. These variables are named
Auto:Hold:%KeyField. These values are used to detect if the
autonumber values are generated the same on two consecutive passes
through the AutoNumber code. If so, a warning is generated. If you
get the error: "When adding a record, an unexplained Duplicate was
encountered." This warning is due to a design flaw in the generated
program, because of which the end-user is able to save a record with
empty key fields in a unique key that does not exclude nulls. The
entry fields corresponding to the key fields need to be required.
Otherwise, how can an AutoNumber record be created?
4. In the SaveAutonumber ROUTINE, we prime the key values for every
autonumbering key. Here's how we do it:
a. Process PRIMEKEY formulae to prime values. This is not
necessary with the 3007.105 templates, because in the
absence of PRIMEKEY formulae we use the key field values
that are already present in the record buffer. In
other words, with 3007.105 to prime your key fields you
only have to make the appropriate value assignments in your
"Setup Procedure" EMBED.
b. Use the current values of the key fields as they
are in the %Primary record buffer. Since the Browse
resets Range Limit values after clearing the record on an
ADD, in most cases this should not need to be done.
5. In NextAutoNumber, we search each autonumber key for the next
highest number, using the values saved in SaveAutoNumber. After
we've gotten the high value for each field, we restore values as
they were saves in SaveAutoNumber, restore the new AutoNumber
values, and attempt to add. If we fail because of duplicates, we
try again. If we fail for any other reason, we immediatly inform
the user.
6. %Primary is only being HELD if SharedFiles is set on. In a single
user system this HOLD is not necessary.
Several Misc Templates - Replaced BREAK and RETURN statements with DO
ProcedureReturns, as necessary.
Several Misc Templates - Move last ShowWarning constructions to WARNINGS.TPX
Relation.TPX - In the InitLogout and BtrieveTrxFraming GROUPs, ShowWarning
construction was taking place after the ROLLBACK, which clears out ERROR()
and ERRORCODE(), making the warning uninformative, to say the least.
Child - Added INSERT to %StandardHeader
View - Changed final SetPath to allow setting path back to root directory.
Form21 and MemForm21 - Moved the CASE KEYCODE() handling to a GROUP,
%Form21KeyHandling. This GROUP is located at the tail of CPD21.TPX, and
allows easier repairs.
Clarion.TPL - Added ProcedureReturn ROUTINEs to CheckOpen, DiskError, and
ShowWarning procedures and functions.
Clarion.TPL - Added LOC::ReturnValue to CheckOpen() and DiskErr() functions.
This value is RETURNed in ProcedureReturn.
Clarion.TPL - Added several new EMBED points in CheckOpen, DiskError, and
ShowWarning.
MultiPg and Form21 - Made the Message Prompts 30 characters in length.
Reports - Again, fixed problems with Group Breaks.
Reports - were reporting the entire contents of a file, even if Range Limit
set.
ScrnFlds.TPX - Was not generating code for fields that were not file related,
i.e. Global and Local data.
Browse, Validate, Select, Lookup - Were not updating the record on a form
called with CtrlEnter. Added SETKEYCODE(EnterKey) to that condition.
Tom Moseley
----------------------------------
To Install:
Copy all *.TP*, *.CLA, *.DLL, *.PR to your \CLARION3 directory
Copy all *.LIB to your \CLARION3\LIB directory